home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / TGE133.ZIP;1 / INCLUDE / FIXFONT.H next >
Encoding:
C/C++ Source or Header  |  1994-07-18  |  3.9 KB  |  114 lines

  1. /*****************************************************************************
  2. *       The Graphics Engine version 1.33                                     *
  3. *                                                                            *
  4. *       The Graphics Engine code and documentation are                       *
  5. *       Copyright (c) 1993-1994 by Matthew Hildebrand; all rights reserved.  *
  6. *                                                                            *
  7. *       Unauthorised usage or modification of any or all of The Graphics     *
  8. *       Engine is strictly prohibited.                                       *
  9. *****************************************************************************/
  10.  
  11. #if !defined(FONTdotH)
  12. #define FONTdotH
  13.  
  14. #include <stdio.h>
  15.  
  16.  
  17.  
  18. //*****
  19. //***** Bitmapped font services class
  20. //*****
  21.  
  22. class FixedFont
  23. {
  24.   unsigned charWide, charDeep;        // character cell dimensions
  25.   unsigned realCharWide;        // real character width (before adjustment)
  26.   unsigned char fgColour, bgColour;    // font colours (0=invisible)
  27.   void far *rawData;            // raw character data here
  28.   void far *image;            // buffer for putImageInv()
  29.   unsigned charSize;                    // character cell size in bits
  30. public:
  31.   FixedFont(unsigned char fg=1, unsigned char bg=0);
  32.   FixedFont(char *filename, unsigned char fg=1, unsigned char bg=0);
  33.   FixedFont(unsigned char *filename, unsigned char fg=1, unsigned char bg=0);
  34.   ~FixedFont();
  35.   int load(char *filename);
  36.   int load(unsigned char *filename)              { return load((char*)filename); }
  37.   inline int status(void);        // return status code (0=ERROR)
  38.   unsigned width(char *str);            // string width in pixels
  39.   unsigned width(unsigned char *string)          { return width((char*)string);  }
  40.   inline unsigned height(char *str);    // string depth in pixels
  41.   unsigned height(unsigned char *string)         { return height((char*)string); }
  42.   inline unsigned width(char ch);       // character width in pixels
  43.   unsigned short width(unsigned char ch)         { return width((char)ch);       }
  44.   inline unsigned height(char ch);      // character depth in pixels
  45.   unsigned short height(unsigned char ch)        { return height((char)ch);      }
  46.   inline unsigned maxWidth(void);       // max character width in pixels
  47.   inline unsigned maxHeight(void);      // max character height in pixels
  48.   void put(int x, int y, char *str);    // write a string
  49.   void put(int x, int y, char ch);    // write a single character
  50.   void put(int x, int y, unsigned char *string)  { put(x,y,(char*)string); }
  51.   void put(int x, int y, unsigned char ch)       { put(x,y,(char)ch);      }
  52.   inline void foreground(unsigned c);    // set foreground colour
  53.   inline void background(unsigned c);    // set background colour
  54.   inline unsigned foreground(void);    // get foreground colour
  55.   inline unsigned background(void);    // get background colour
  56.   inline void *charAddr(char ch)                 { return ((void*)(((char*)rawData)+charSize/8*(unsigned)ch)); }
  57.   inline void *charAddr(unsigned char ch)        { return ((void*)(((char*)rawData)+charSize/8*(unsigned)ch)); }
  58. };
  59.  
  60.  
  61. inline int FixedFont::status(void)
  62. {
  63.   return (rawData==NULL ? 0 : 1);
  64. }
  65.  
  66. inline unsigned FixedFont::width(char)
  67. {
  68.   return (realCharWide);
  69. }
  70.  
  71. inline unsigned FixedFont::maxWidth(void)
  72. {
  73.   return (realCharWide);
  74. }
  75.  
  76. inline unsigned FixedFont::height(char *)
  77. {
  78.   return (charDeep);
  79. }
  80.  
  81. inline unsigned FixedFont::height(char)
  82. {
  83.   return (charDeep);
  84. }
  85.  
  86. inline unsigned FixedFont::maxHeight(void)
  87. {
  88.   return (charDeep);
  89. }
  90.  
  91. inline void FixedFont::foreground(unsigned colour)
  92. {
  93.   fgColour = colour;
  94. }
  95.  
  96. inline void FixedFont::background(unsigned colour)
  97. {
  98.   bgColour = colour;
  99. }
  100.  
  101. inline unsigned FixedFont::foreground(void)
  102. {
  103.   return (fgColour);
  104. }
  105.  
  106. inline unsigned FixedFont::background(void)
  107. {
  108.   return (bgColour);
  109. }
  110.  
  111.  
  112.  
  113. #endif
  114.